package com.extension.company.contract.home;

import android.content.Context;

import com.extension.company.common.mvp.IModel;
import com.extension.company.common.mvp.IView;

import java.util.List;

/**
 * 作者：zwk
 * 时间：on 2019/3/18 13:52
 * 功能：搜索的接口
 */
public interface SearchContract {

	interface Mode extends IModel {

		/**
		 * 获取数据库中所有数据
		 */
		void requestSearchData(Context context, SearchContract.searchAllCallBack callBack);

		/**
		 * 插入查找的数据
		 *
		 * @param context
		 * @param searchStr
		 * @param callBack
		 */
		void insertSearchData(Context context, String searchStr, SearchContract.insertCallBack callBack);


		/**
		 * 删除所有的搜索的记录
		 *
		 * @param context
		 * @param callBack
		 */
		void deleteAll(Context context, SearchContract.deleteaAllCallBack callBack);
	}

	interface View extends IView {

		/**
		 * 搜索所有的数据
		 *
		 * @param t
		 * @param <T>
		 */
		<T> void searchAllDataSuccess(List<T> t);

		/**
		 * 插入数据
		 */
		void insertDataSuccess();

		/**
		 * 删除所有搜索数据成功
		 */
		void deleteAllDataSuccess(boolean isTrue);

	}


	/**
	 * 查找所有的历史记录
	 */
	interface searchAllCallBack {

		/**
		 * 查询所有字段返回成功
		 */
		<T> void searchAllCallBackSuccess(List<T> t);

		/**
		 * 查询所有字段返回失败
		 */
		void searchAllFaileBackFaile();
	}

	/**
	 * 插入搜索的数据
	 */
	interface insertCallBack {

		/**
		 * 插入搜索数据成功
		 */
		void insertCallBackSuccess(boolean isSuccess);

		/**
		 * 插入搜索数据失败
		 */
		void insertCallBackFaile(String msg);
	}

	/**
	 * 删除历史记录成功的回调
	 */
	interface deleteaAllCallBack {
		void deleteAllCallBackSuccess(boolean isTrue);

		void deleteAllCallBackFaile(boolean isTrue);
	}


}
